package com.party.course.domain;

import java.math.BigDecimal;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.party.common.annotation.Excel;
import com.party.common.core.domain.BaseEntity;
import lombok.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * 学员信息对象 student_info
 *
 * @author ruoyi
 * @date 2025-05-29
 */
@Data
@TableName(value = "student_info")
@ToString
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class StudentInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * "学员id"
     */
    @Excel(name = "学员id")
    private String userId;

    /**
     * "学员编号"
     */
    @Excel(name = "学员编号")
    private String code;

    /**
     * "姓名"
     */
    @Excel(name = "姓名")
    private String name;

    /**
     * "性别"
     */
    @Excel(name = "性别")
    private String sex;

    /**
     * "年级"
     */
    @Excel(name = "年级")
    private String level;

    /**
     * "家长联系方式"
     */
    @Excel(name = "家长联系方式")
    private String linkPhone;

    /**
     * "家长反馈分数"
     */
    @Excel(name = "家长反馈分数")
    private String userRemark;

    /**
     * "家长反馈等级"
     */
    @Excel(name = "家长反馈等级")
    private String userScore;

    /**
     * "家长反馈"
     */
    @Excel(name = "家长反馈")
    private String userGrade;

    /**
     * "手机号"
     */
    @Excel(name = "手机号")
    private String phone;

    /**
     * "推荐人姓名"
     */
    @Excel(name = "推荐人姓名")
    private String recName;

    /**
     * "推荐手机号"
     */
    @Excel(name = "推荐手机号")
    private String recPhone;

    /**
     * "门店id"
     */
    @Excel(name = "门店id")
    private String storeUserId;

    /**
     * "门店编号"
     */
    @Excel(name = "门店编号")
    private String storeCode;

    /**
     * "门店名称"
     */
    @Excel(name = "门店名称")
    private String storeName;

    /**
     * "首次上课时间"
     */
    @Excel(name = "首次上课时间")
    private String firstTime;

    /**
     * "是否建群 0：是  1：否"
     */
    @Excel(name = "是否建群")
    private String isAddGroup;

    /**
     * "学管师id"
     */
    @Excel(name = "学管师id")
    private String learnId;

    /**
     * "上课教练id"
     */
    @Excel(name = "上课教练id")
    private String coachId;

    /**
     * "教练接单状态  0:未接单 1：已接单 2：已退单"
     */
    @Excel(name = "教练接单状态")
    private String coachOrderStatus;

    /**
     * "已购学时"
     */
    @Excel(name = "已购学时")
    private String buyLearnTime;

    /**
     * "交付学时"
     */
    @Excel(name = "交付学时")
    private String payLearnTime;

    /**
     * "已退学时"
     */
    @Excel(name = "已退学时")
    private String retreatLearnTime;

    /**
     * "剩余学时"
     */
    @Excel(name = "剩余学时")
    private String surplusLearnTime;

    /**
     * "课程id"
     */
    @Excel(name = "课程id")
    private String classId;

    /**
     * "课程名称"
     */
    @Excel(name = "课程名称")
    private String className;

    /**
     * "课程分类id"
     */
    @Excel(name = "课程分类id")
    private String classTypeId;

    /**
     * "课程分类名称"
     */
    @Excel(name = "课程分类名称")
    private String classTypeName;

    /**
     * "期望上课时间"
     */
    @Excel(name = "期望上课时间")
    private String expectTime;
    /**
     * "订单号"
     */
    @Excel(name = "订单号")
    private String orderCode;

    /**
     * "交付金额"
     */
    @Excel(name = "交付金额")
    private BigDecimal payAmount;

    /**
     * "退款金额"
     */
    @Excel(name = "退款金额")
    private BigDecimal surplusAmount;

    /**
     * "订单状态-退课  0：未退课  1:已退课"
     */
    @Excel(name = "订单状态-退课")
    private String orderStatus;

    /**
     * "审核状态-退课  0：未提交  1：待审核  2：审核通过 3:审核不通过"
     */
    @Excel(name = "审核状态-退课")
    private String approvalStatus;


    @Excel(name = "审核状态-备注")
    private String approvalRemark;

    /**
     * "退课退款备注"
     */
    @Excel(name = "退课退款备注")
    private String dropRemark;

    /**
     * "支付状态"
     */
    @Excel(name = "支付状态")
    private String isPay;

    /**
     * "学习状况反馈分数"
     */
    @Excel(name = "学习状况反馈分数")
    private String learnScore;

    /**
     * "学习状况反馈等级"
     */
    @Excel(name = "学习状况反馈等级")
    private String leatnGrade;

    /**
     * "学习状况反馈"
     */
    @Excel(name = "学习状况反馈")
    private String learnRemark;

    /**
     * "交付小组id"
     */
    @Excel(name = "交付小组id")
    private String payGroupId;

    /**
     * "是否试课   1正式课  1 试听 "
     */
    @Excel(name = "是否试课")
    private String isTest;

    /**
     * "是否新生"
     */
    @Excel(name = "是否新生")
    private String isNew;

    @Excel(name = "派单时间")
    private String dispatchTime;

    @Excel(name = "派单备注")
    private String dispatchRemark;

    @Excel(name = "下单备注")
    private String remark;
    /**
     * 所属学段：0小学，1初中，2高中
     */
    private String teachSection;
    /**
     * 课程等级：0一级，1二级
     */
    private String classLevel;

    private String delFlag;

    // 教材版本
    private String jcVersion;

    @TableField(exist = false)
    private String payCenterId;

    @TableField(exist = false)
    private String payCenterName;

    @TableField(exist = false)
    private String payGroupName;

    @TableField(exist = false)
    private String learnName;

    @TableField(exist = false)
    private String coachName;

    @TableField(exist = false)
    private String teachMethod;

    @TableField(exist = false)
    private String position;

    @TableField(exist = false)
    private String roleId;

    /**
     * 0：教练登录  1：学管登录
     */
    @TableField(exist = false)
    private String isCoach;

    @TableField(exist = false)
    private List<PayGroup> groups;

    /**
     * 教练手机号
     */
    @TableField(exist = false)
    private String coachPhone;

    /**
     * 上课时间-用与课前通知消息提醒
     */
    @TableField(exist = false)
    private String upClassTime;

    /**
     * 企微通讯录人员id即企微账号-消息通知接收人
     */
    @TableField(exist = false)
    private String wxUserId;
    // 是否排课 排课数量
    @TableField(exist = false)
    private int pkNum;

    @TableField(exist = false)
    private BigDecimal totalFee;
    // 合伙人分账金额
    @TableField(exist = false)
    private BigDecimal hhrAmount;

    // 金额
    @TableField(exist = false)
    private BigDecimal amount;
    // 合伙人
    @TableField(exist = false)
    private String hhrName;






}
